package com.tracesystem.model;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.prefs.BackingStoreException;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author Kevin Martin
 * @since 2022-03-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("i_issue_base_info")
public class IssueBaseInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "ISSUE_ID", type = IdType.AUTO)
    private Integer issueId;

    @TableField("PROJECT_ID")
    private Integer projectId;

    @TableField("PARENT_ISSUE_ID")
    private Integer parentIssueId;

    @TableField("ISSUE_NAME")
    private String issueName;

    @TableField("ISSUE_DESC")
    private String issueDesc;

    @TableField("ASSIGNEE")
    private String assignee;

    @TableField("ISSUE_TYPE")
    private String issueType;

    @TableField("ISSUE_SEVERITY")
    private String issueSeverity;

    @TableField("ISSUE_PRIORITY")
    private String issuePriority;

    @TableField("PLAN_START_TIME")
    private LocalDate planStartTime;

    @TableField("PLAN_END_TIME")
    private LocalDate planEndTime;

    @TableField("ACT_START_TIME")
    private LocalDate actStartTime;

    @TableField("ACT_END_TIME")
    private LocalDate actEndTime;

    @TableField("PLAN_WORK_HOURS")
    private BigDecimal planWorkHours;

    @TableField("ACT_WORK_HOURS")
    private BigDecimal actWorkHours;

    @TableField("ASSIGNED_TIME")
    private LocalDateTime assignedTime;

    @TableField("DONE_CONDITION")
    private String doneCondition;

    @TableField("DONE_RATIO")
    private Integer doneRatio;

    @TableField("ISSUE_STATE")
    private String issueState;

    @TableField(value = "CREATE_BY",fill = FieldFill.INSERT)
    private String createBy;

    @TableField(value = "CREATE_TIME",fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(value = "MODIFY_BY",fill = FieldFill.INSERT_UPDATE)
    private String modifyBy;

    @TableField(value = "MODIFY_TIME",fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime modifyTime;
    @TableLogic
    @TableField("ISDELETED")
    private Integer isDeleted;
}
